/********************************************************************************
 ***                                                                          *** 
 ********************************************************************************
 *                                                                              * 
 *           Prject Name : MEMORIA                                              * 
 *                                                                              * 
 *             File Name : nail.cpp                                             * 
 *                                                                              * 
 *            Programmer : LBW                                                  * 
 *                                                                              * 
 *            Start Date : 2020/12/26                                           * 
 *                                                                              * 
 *           Last Update : 2020/12/26  [LBW]                                    * 
 *                                                                              * 
 *------------------------------------------------------------------------------*
 * Functions:                                                                   * 
 *   Nail::Nail -- Nail类的构造函数                                             * 
 *   Nail::mousePressEvent -- 左键点击Nail触发的事件                            * 
 *   Nail::setId -- 设置该Nail在一系列Nails中所处的位置                         * 
 *==============================================================================*/

#include <QtWidgets>

#include "nail.h"

/**********************************************************************************
 * Nail::Nail -- Nail类的构造函数                                                 *
 *                                                                                *
 *   Nail类是供选择的单词，Hole类是待填空的单词                                   *
 *   输入str即是该Nail所表示的单词                                                *
 *   当用户把Nail拖到Hole中时,Hole会比较str与正确答案是否相符                     *
 *   相符则绿色显示str表示正确                                                    *
 *   不相符则红色显示str表示错误                                                  *
 *                                                                                *
 * INPUT: str -- 该Nail所代表的单词                                               *
 *        parent -- Nail的父对象                                                *
 *                                                                                *
 * OUTPUT: none                                                                   *
 *                                                                                *
 * WARNINGS: none                                                                 *
 *                                                                                *
 * HISTORY:                                                                       *
 *   2020/12/26 LBW : Created.                                                    *
 *================================================================================*/

Nail::Nail(QString str,QWidget *parent):QPushButton(parent)
{
	setText(str);
	setFixedWidth(sizeHint().width());
}

/**********************************************************************************
 * Nail::mousePressEvent -- 左键点击Nail触发的事件                                *
 *                                                                                *
 * INPUT: event -- 发生在Nail上的鼠标事件                                         *
 *                                                                                *
 * OUTPUT: none                                                                   *
 *                                                                                *
 * WARNINGS: none                                                                 *
 *                                                                                *
 * HISTORY:                                                                       *
 *   2020/12/26 LBW : Created.                                                    *
 *================================================================================*/

void Nail::mousePressEvent(QMouseEvent *event)
{
	if(event->button() == Qt::LeftButton){
		emit nailPressed(id);
		QDrag *drag = new QDrag(this);
		QMimeData *mimeData = new QMimeData();
		mimeData->setText(this->text());
		drag->setMimeData(mimeData);
		drag->exec();
	}
}

/**********************************************************************************
 * Nail::setId -- 设置该Nail在一系列Nails中所处的位置                             *
 *                                                                                *
 * INPUT: intId -- nail所处的位置                                                 *
 *                                                                                *
 * OUTPUT: none                                                                   *
 *                                                                                *
 * WARNINGS: none                                                                 *
 *                                                                                *
 * HISTORY:                                                                       *
 *   2020/12/26 LBW : Created.                                                    *
 *================================================================================*/

void Nail::setId(int intId){
	id = intId;
}
